package reese.think_in_java.java_17_contains;

/**
 * ***********************************************************
 *
 * @类名 : reese.think_in_java.java_17_contains.类名
 * @DESCRIPTION : 这家伙太懒啥都没写
 * @AUTHOR :  一个风情万种的男子
 * @DATE : 2016/6/16
 * ***********************************************************
 */
public class LinkedStack<T> {

    private static class Node<U>{
        U item ;
        Node<U> next;
        Node(){
            item = null;
            next = null ;
        }
        Node(U item, Node<U> next) {
            this.item = item;
            this.next = next;
        }
        boolean end(){
            return item == null && next==null;
        }
    }

    private Node<T> top = new Node<T>(); // End sentinel

    public void push(T item) {
        top = new Node<T>(item, top);
    }
    public T pop() {
        T result = top.item;
        if(!top.end()){
            top = top.next;
        }
        return result ;
    }

    public static void main(String[] args) {
        LinkedStack<String> lss = new LinkedStack<String>();
        for(String s : "Phasers on stun!".split(" ")){
            lss.push(s);
        }
        String s ;
        while((s = lss.pop()) != null){
            System.out.println(s);
        }

    }

}
